1. Field of Invention
This invention relates to man-machine interfaces for wireless communication devices, and more particularly, to man-machine interfaces constructed from markup languages.
2. Background of the Invention
Wireless communication devices are becoming an increasingly prevalent for personal communication needs. These devices include, for example, cellular telephones, alphanumeric, pagers, "palmtop" computers and personal information managers (PIMS), and other small, primarily handheld communication and computing devices. Wireless communication devices have matured considerably in their features, and now support not only basic point-to-point communication functions like telephone calling, but more advanced communications functions, such as electronic mail, facsimile receipt and transmission, Internet access and browsing of the World Wide Web, and the like.
Generally, wireless communication devices have software that manage various handset functions and the telecommunications connection to the base station. The software that manages all the telephony functions is typically referred to as the telephone stack, and the software that manages the screen display and processes user inputs of key presses is referred to as the Man-Machine-Interface or "MMI." The MMI is the topmost, and most visible layer of the wireless communication device's software.
Because wireless communication devices have generally reached a very desirable and small form factor, the primary determinant of a successful device will likely be in its feature set and its ease of use. Thus, the ability to quickly design, test, and deliver wireless communication devices that are both easy to use, and have a rich set of features--attributes that are often opposed to one another--will be essential to successful product performance.
However, wireless communication devices present a variety of more challenging design and implementation issues that do not arise with larger processor-based systems, such as notebook and desktop computers, which may also have similar telecommunication features. These design challenges include the design of the user interface, the customization of the devices for particular service operators, the integration of Internet and World Wide Web access with other communication functionality, and the software development process.
User Interface Design Constraints
Unlike desktop and notebook computers, wireless communication devices have a form factor which requires a very small screen display size. Desktop computers typically have displays with at least 14" screen size, and resolution typically between 640.times.480 and 1024.times.768 pixels. In contrast, wireless communication devices typically have a screen size between 25.times.25 mm and 80.times.120 mm, and resolutions between 90.times.60 to 120.times.120 pixels, or about 3-8% of the size of the desktop or notebook screen. As a direct result, the user interface design of the wireless communication device must provide access to essentially the same features as desktop computers, such as electronic mail, facsimiles, and Web browsing, yet with only a fraction of the screen area for displaying text, images, icons, and the like. This problem of constructing the user interface to provide these features is particularly significant when handling Web based content, since conventional Web content, such as forms, assume the larger screen size of conventional desktop computers. Displaying such forms on the small screen of a wireless communication device results in jumbled and difficult to use content.
Another user interface limitation of wireless communication devices is the severely restricted set of inputs available to the user. Conventional desktop or notebook computers have cursor based pointing devices, such as computer mouse, trackballs, joysticks, and the like, and full keyboard. This enables navigation of Web content by clicking and dragging of scroll bars, clicking of hypertext links, and keyboard tabbing between fields of forms, such as HTML forms. Wireless communication devices have a very limited number of inputs, typically up and down keys, and one to three softkeys.
Accordingly, it is desirable to provide a software architecture for the MMI of a wireless communication device that enables the customization and use of user interface with Web content accounting for the limited screen resolution and input functionality of the wireless communication device.
Integration of Internet/Web Functional with Telephony
With the advent of the Internet and the World Wide Web, the highest performance wireless communication devices provide complete Internet access and the ability to directly browse the World Wide Web. Current devices provide Internet and World Wide Web access through a strictly modal interface, in which the user must select between using the wireless communication device in a browser mode in its native telecommunications mode for making telephone calls, accessing a stored telephone book, sending facsimiles, and the like. In the "browser mode" the user cannot dial a telephone number to make a telephone; likewise in the telephony mode, the user cannot access a Web site. Thus, the user is unable to operate the wireless communication device in a seamless fashion that allows Web content to be downloaded and manipulated in context of the telephone functions, such as embedding an item of Web content that is obtained while browsing into the user's telephone book, or into an email message.
Accordingly, it is desirable to provide an MMI in which Internet and World Wide Web access features are seamlessly integrated with the telephony and other controls of the wireless communication device so that user can access any feature of the wireless communication device at any time.
Software Engineering of the MMI
Typically, an MMI is implemented as a module in a larger piece of code that manages the telephone control functions. The MMI is coded in the same computer language as the rest of the telephone control software. This makes the MMI difficult to modify without using the same programming skills and tools used to create the entire telephone control software. In other words, changing anything in the MMI requires the services of a skilled programmer familiar with the underlying telephony programming details and computer language. In addition, since the MMI is an integral part of the code for the telephone control software, implementing new changes in the MMI means compiling a new image of all the telephone control software, and testing the result to ensure that the new MMI features are compatible with all other code modules. In short, problems introduced by modifying the MMI software can potentially cause the handset to malfunction, disrupting service on the network to other users. Depending on the extent of the modifications, the change of any portion of the telephone control software can result in bugs, and/or the need for new type approval of the entire wireless communication device. Thus, it is desirable to provide a software architecture which separates the design and implementation of the MMI functionality from the implementation of the telephone control software, allowing the manufacturer to quickly and safely customize the MMI design to suit the needs of a particular customer
Customizing of the MMI for Service Operators: "Branding"
In the wireless communication device industry, the services operators, such as cellular service providers, are interested in attracting and retaining their customers by aggressively branding their wireless communication device products, and offering new telephony features and network services to the user. Important among these are services that add value to the user, such as voice mail, electronic messaging, Internet access, and the like as mentioned above. "Branding" is the embedding of insignia, logos, or other indicia into the MMI of the wireless communication device and its features that identifies it to the consumer as originating from the service operator.
The manufacturers of the wireless communication device, who typically provide only the basic hardware components, must therefore provide a way for the service operator to integrate these features and services into the wireless communication device by software programming, and provide a mechanism for branding the features. A key problem is that these services are necessarily different in their functionality and requirements, and the task of providing users with a current array of services and features a difficult one.
Wireless communication device manufacturers have traditionally attacked this problem by making a special version of the wireless communication device control software for each service operator selling that wireless communication device in conjunction with its own communication services. Each specific version of the wireless communication device contains the device manufacturer's branding, the operator's branding, and support for whatever features and services the service operator supports. Each of these versions becomes a different piece of software to be tested, maintained, and modified as new features or services are provided to the consumer. This significantly increases the software development expense and maintenance issues. Further, unless the wireless communication device manufacturer provides the service operator with the source code of the MMI and telephone control software, it requires the wireless communication device manufacturer to be directly involved in the branding and MMI design requirements of the service operator. Thus, it desirable to provide a software architecture for an MMI that allows the wireless communication device manufacturer to provide a single body of telephone control software to each service operator, and allows each service operator to independently, and without the assistance of the wireless communication device manufacturer, design, implement, and brand the MMI for the wireless communication device.